<?php
defined("__HVE") or die("<tt>HansVon Engine</tt>");
ini_set('display_errors', TRUE);
/* ///////////Developed By
  _   _       ___   __   _   _____        _     _   _____   __   _  
 | | | |     /   | |  \ | | /  ___/      | |   / / /  _  \ |  \ | | 
 | |_| |    / /| | |   \| | | |___       | |  / /  | | | | |   \| | 
 |  _  |   / / | | | |\   | \___  \      | | / /   | | | | | |\   | 
 | | | |  / /  | | | | \  |  ___| |      | |/ /    | |_| | | | \  | 
 |_| |_| /_/   |_| |_|  \_| /_____/      |___/     \_____/ |_|  \_| 
*/
//  //     Manejador de Base de Datos para MySQL
///////////////////////////////////////////////////////////////////
//  //       Autor : Hans Von Herrera Ortega
//  //     Versión : 1.0
//  //      Bugs a : hans.php@gmail.com
class H_MYSQL {
	private $conexion;
	private $resultado;
	private $conectado;
	private $ultima_fila;
	
	public $Merr=true;
	public $with_htmlentities=1;
	
	private $sql;
	private $respuesta;
	private $filas;
	
	static $instancias;
	function __construct() {
		if(!H_MYSQL::$instancias++){ 
			$this->conexion=@mysql_connect(H_MYSQL_HOST, H_MYSQL_USUARIO, H_MYSQL_CLAVE);
			if(@mysql_select_db(H_MYSQL_BD,$this->conexion)){
				$this->conectado = true;
			}else{
				$this->errores(mysql_errno());
			}
		}else{
			die("Hay mas de una instancia del objeto <b>'H_MYSQL'</b>.");
		}
	}
	function __destruct() {
 		if(!empty($this->conexion)){
			mysql_close($this->conexion);
			unset($this->conexion);
		}
	}
	function fila($sql,$depurar=0){
		return $this->iconsulta($sql,'fila');
	}
	function consulta($sql,$depurar=0){
		return $this->iconsulta($sql,'consulta');
	}
	function iconsulta($sql,$tipo){
		if($this->conectado && $sql){
			$this->sql=$sql;
			if($this->resultado = mysql_query($sql,$this->conexion)){
				unset($this->respuesta);
				if($tipo=='fila'){
					$this->respuesta[0] = @mysql_fetch_object ($this->resultado);
					$this->ultima_fila = $this->respuesta[0];
				}else if($tipo=='consulta'){
					$i=0;
					if($this->resultado!='1'){
						while($fila = mysql_fetch_object ($this->resultado)){
							$this->respuesta[$i]=$fila;
							$i++;
							if($i>1000) 
							die("<b>FATAL:</b>  Su consulta genera mas de mil registros.");
						}
						if(!empty($this->respuesta))
						$this->ultima_fila=$this->respuesta[$i-1];
					}
				}

				//if($depurar || $this->depurador) $this->depurar();

				if($this->resultado!='1') mysql_free_result($this->resultado);

				if(!empty($this->respuesta[0]) && $tipo=='fila' && $this->resultado!='1'){
					return $this->respuesta[0];
				}elseif(!empty($this->respuesta) && $this->resultado!='1'){
					return $this->respuesta;

				}else{

					return true;
				}
			}else{
				$this->errores(mysql_errno());
			}
		}
	}
	
	function errores($n){
		if(!empty($this->Merr)){
			if(!empty($n)) echo("Error no:".$n);
		}else{
			return false;
		}
	}
}
